﻿using SqlSugar;
using System;
using System.Diagnostics.Contracts;

namespace NP.BPMReportPlatform.Entities.BPM_Platform
{
    /// <summary>
    /// 员工合同
    /// </summary>
    [SugarTable("UserContract")]
    public class UserContractEntity
    {
        /// <summary>
        /// 主键
        /// </summary>
        [SugarColumn(IsPrimaryKey = true)]
        public string ContractId { get; set; }

        /// <summary>
        /// 合同编码
        /// </summary>
        public string ContractCode { get; set; }

        /// <summary>
        /// 工号
        /// </summary>
        public string WorkNumber { get; set; }

        /// <summary>
        /// 员工名称
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// 所属区域编码
        /// </summary>
        public string UserRegionCode { get; set; }

        /// <summary>
        /// 所属区域
        /// </summary>
        public string UserRegionName { get; set; }

        /// <summary>
        /// 部门
        /// </summary>
        public string DepartName { get; set; }

        /// <summary>
        /// 职位
        /// </summary>
        public string UserPosnc { get; set; }

        /// <summary>
        /// 员工电话
        /// </summary>
        public string MobilePhone { get; set; }

        /// <summary>
        /// 证件类型
        /// </summary>
        public string CardName { get; set; }

        /// <summary>
        /// 证件号码
        /// </summary>
        public string CardNum { get; set; }

        /// <summary>
        /// 户口性质
        /// </summary>
        public string CategoryType { get; set; }

        /// <summary>
        /// 户籍地址
        /// </summary>
        public string CardAddress { get; set; }

        /// <summary>
        /// 联系地址
        /// </summary>
        public string ContactAddress { get; set; }

        /// <summary>
        /// 员工邮编
        /// </summary>
        public string PostCode { get; set; }

        /// <summary>
        /// 工时属性
        /// </summary>
        public string TimeSheetType { get; set; }

        /// <summary>
        /// 第几份合同
        /// </summary>
        public int? ContractCount { get; set; }

        /// <summary>
        /// 合同类型
        /// </summary>
        public string ContractTypeCode { get; set; }

        /// <summary>
        /// 合同类型
        /// </summary>
        public string ContractTypeName { get; set; }

        /// <summary>
        /// 合同期限类型
        /// </summary>
        public int? ContractDeadLineCode { get; set; }

        /// <summary>
        /// 合同期限类型
        /// </summary>
        public string ContractDeadLineName { get; set; }

        /// <summary>
        /// 签订日期
        /// </summary>
        public DateTime? SignDate { get; set; }

        /// <summary>
        /// 合同开始日期
        /// </summary>
        public DateTime? ContractStartDate { get; set; }

        /// <summary>
        /// 合同结束日期
        /// </summary>
        public DateTime? ContractEndDate { get; set; }

        /// <summary>
        /// 工作地点
        /// </summary>
        public string WorkAddress { get; set; }

        /// <summary>
        /// 工作地点
        /// </summary>
        public string WorkAddressName { get; set; }

        /// <summary>
        /// 是否有试用期
        /// </summary>
        public bool HasSYQ { get; set; }

        /// <summary>
        /// 试用期开始日期
        /// </summary>
        public DateTime? SYQStartDate { get; set; }

        /// <summary>
        /// 月份
        /// </summary>
        public int? SYQMonth { get; set; }

        /// <summary>
        /// 试用期结束日期
        /// </summary>
        public DateTime? SYQEndDate { get; set; }

        /// <summary>
        /// 甲方公司编号
        /// </summary>
        public string CorporateCode { get; set; }

        /// <summary>
        /// 甲方名称
        /// </summary>
        public string CorporateName { get; set; }

        /// <summary>
        /// 甲方邮编
        /// </summary>
        public string CorporatePostCode { get; set; }

        /// <summary>
        /// 甲方电话
        /// </summary>
        public string CorporatePhone { get; set; }

        /// <summary>
        /// 甲方地址
        /// </summary>
        public string CorporateAddress { get; set; }

        /// <summary>
        /// 合同状态
        /// </summary>
        public int? ContractStatus { get; set; }

        /// <summary>
        /// 合同状态名称
        /// </summary>
        public string ContractStatusName { get; set; }

        /// <summary>
        /// 续签合同对应的上级合同编号
        /// </summary>
        public string ParentContractCode { get; set; }

        /// <summary>
        /// 合同续签状态
        /// </summary>
        public int? ContractRenewalStatus { get; set; }

        /// <summary>
        /// 合同续签状态名称
        /// </summary>
        public string ContractRenewalStatusName { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string CreateUserWorkNumber { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string CreateUserName { get; set; }

        /// <summary>
        /// 创建日期
        /// </summary>
        public DateTime? CreateDate { get; set; }

        /// <summary>
        /// 电子签合同文档id
        /// </summary>
        public string FileKey { get; set; }

        /// <summary>
        /// 电子签流程id
        /// </summary>
        public string SignFlowId { get; set; }

        /// <summary>
        /// 签署错误信息
        /// </summary>
        public string SignErrorMsg { get; set; }

        /// <summary>
        /// SF推送情况(-1:失败，0:待推送，1：推送成功)
        /// </summary>
        public int? SFPushStatus { get; set; }

        /// <summary>
        /// SF推送日期
        /// </summary>
        public DateTime? SFPushDate { get; set; }

        /// <summary>
        /// 推送失败原因
        /// </summary>
        public string SFPushErrorMsg { get; set; }

        /// <summary>
        /// BPM流程号
        /// </summary>
        public string InstanceNumber { get; set; }

        /// <summary>
        /// 学校
        /// </summary>
        public string School { get; set; }

        /// <summary>
        /// 毕业时间
        /// </summary>
        public DateTime? EndDate { get; set; }

        /// <summary>
        /// 专业
        /// </summary>
        public string Professional { get; set; }

        /// <summary>
        /// 是否立邦内部员工(给退休返聘判断用的)
        /// 1:内部员工  0：外部员工
        /// </summary>
        public int IsLB { get; set; } = 1;
    }
}
